home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-06-28 | 886 b | 47 lines | [TEXT/CWIE] |
- // Tree.h
-
- #ifndef Tree_h
- #define Tree_h
-
- #ifndef Sequence_h
- #include "Sequence.h"
- #endif
-
- class TreeNode;
-
- class Tree: public Sequence<Tree,TreeNode>
- {
- friend class TreeNode;
-
- private:
- TreeNode *root;
-
- TreeNode *FirstNode() const;
- TreeNode *LastNode() const;
-
- public:
- Tree();
- ~Tree();
-
- void Add( TreeNode&, AtRoot );
- void Add( TreeNode&, Before, const TreeNode& );
- void Add( TreeNode&, After, const TreeNode& );
-
- void Remove( TreeNode& );
- void RemoveAll();
-
- bool IsEmpty() const { return root == 0; }
-
- const TreeNode *Root() const { return root; }
- const TreeNode *First() const { return FirstNode(); }
- const TreeNode *Last() const { return LastNode(); }
-
- TreeNode *Root() { return root; }
- TreeNode *First() { return FirstNode(); }
- TreeNode *Last() { return LastNode(); }
-
- bool Valid() const;
- };
-
- #endif
-